package com.zxd.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * ClassName:MyAnnotation
 * Package:com.zxd.annotation
 *  注解的本质是一个接口，并且继承了Annotation这个接口ctrl+alt+u可以看见
 * @Date:2023/10/7 21:32
 * @Author:zxde
 */

/**
 * Target为元注解：修饰注解的注解
 * Target限定注解可以使用的范围，如TYPE表示可以在类上使用，METHOD在方法上使用
 *
 * Retention：表示此注解存在的时间
 * RetentionPolicy.RUNTIME 保留到运行阶段
 * RetentionPolicy.SOURCE  只在源码阶段存在，编译成字节码就不存在了
 * RetentionPolicy.CLASS   在字节码阶段存在，在运行时不存在
 *
 */
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    String name();
    int age();
}
